package singleNumberII;



/*
 * 137 Single Number II
 * 位运算处理 1 XOR 1 =0 0 XOR 1=1 0 XOR 0=1
 * 统计每个二进位上1的数目 必然为3n+x （X为single Number在该二进制位上的值）
 * 
 */
public class Solution {
    public int singleNumber(int[] nums) {
       int ans=0;
       for (int i=0;i<32;i++)
       {
    	   int count=0;
    	   for (int j=0;j<nums.length;j++)
    		   count=count+((nums[j]>>i)&1);
    	   ans=ans+(count%3<<i);
       }
       return ans;
    }
    public static void main(String args[]){
    	Solution so=new Solution();
    	int[] nums=new int[]{2,2,2,3};
    	System.out.println(so.singleNumber(nums));
    }
}
